package com.nondo.dean.auth.service;

import com.nondo.dean.auth.domain.RoleMenuKey;

import java.util.List;

public interface RoleMenuService {

    /**
     * 保存角色菜单对象
     *
     * @param roleId 角色编号
     * @param menuId 菜单编号
     */
    void saveRoleMenu(Long roleId, Long menuId);

    /**
     * 根据角色ID和菜单ID查询出角色菜单对应关系
     *
     * @param roleId 角色ID
     * @param menuId 菜单ID
     * @return 对应关系
     */
    RoleMenuKey findByRoleIdAndMenuId(Long roleId, Long menuId);

    /**
     * 根据菜单ID查询出角色菜单集合
     *
     * @param menuId 菜单ID
     * @return 角色菜单集合
     */
    List<RoleMenuKey> findByMenuId(Long menuId);

    /**
     * 根据角色编号查询出角色菜单集合
     *
     * @param roleIds 角色编号集合
     * @return 角色菜单集合
     */
    List<RoleMenuKey> findByRoleIds(List<Long> roleIds);

    /**
     * 根据角色编号查询出角色菜单集合
     *
     * @param roleId 角色编号
     * @return 角色菜单集合
     */
    List<RoleMenuKey> findByRoleId(Long roleId);

    /**
     * 根据角色ID和菜单ID删除
     *
     * @param roleId 角色ID
     * @param menuId 菜单ID
     */
    void deleteByRoleIdAndMenuId(Long roleId, Long menuId);

    /**
     * 删除角色菜单关系
     * @param roleId 角色编号
     */
    void deleteByRoleId(Long roleId);

}
